package com.zyl.lock8;

import java.util.concurrent.TimeUnit;

/**
 * @author zhaoyl
 * @date 2024/5/15 16:19
 * @description 说明
 * 锁问题一:锁的对象
 */
public class Test1 {
    public static void main(String[] args) {
        Phone phone = new Phone();
        //线程A打电话
        new Thread(()->{
            phone.call();
        },"线程A").start();
        try {
            TimeUnit.SECONDS.sleep(2);//睡2秒
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        /*----------线程A先执行------synchronized锁对象phone-------------*/
        //线程B发短信
        new Thread(()->{
            phone.sendSms();
        },"线程B").start();

    }
}

class  Phone {
    //synchronized锁的是方法的调用者Phone
    //两个对象用的是同一个锁，谁先拿到谁先执行
    //同步锁
    public synchronized void sendSms(){
        System.out.println(Thread.currentThread().getName()+"发送短信");
    }
    //同步锁
    public synchronized void call(){
        System.out.println(Thread.currentThread().getName()+"打电话");
    }
}